package com.m4f.city.utils.serializer;

import java.util.ArrayList;
import java.util.List;

import com.google.api.client.util.Key;
import com.m4f.city.utils.serializer.annotation.M4FPropertySerializable;
import com.m4f.city.utils.serializer.annotation.M4FSerializable;

@M4FSerializable(name="testInternal")
public class TestInternalModelSerializable {
	
	public TestInternalModelSerializable() {
		this.id = new Long(9999);
		this.name = "m4f";
		this.arrayInts = new int[]{1,2,3,4,5};
		this.arrayString = new String[] {"uno", "dos", "tres", "cuatro", "cinco"};
		
		this.listString = new ArrayList<String>();
		this.listString.add("col1");
		this.listString.add("col2");
		this.listString.add("col3");
		
		this.listInteger = new ArrayList<Integer>();
		this.listInteger.add(new Integer(10));
		this.listInteger.add(new Integer(11));
		this.listInteger.add(new Integer(12));
	}
	
	@M4FPropertySerializable(name="id")
	@Key("id")
	private Long id;
	
	@M4FPropertySerializable(name="name")
	@Key("name")
	private String name;
	
	@M4FPropertySerializable(name="arrayInts")
	private int[] arrayInts;
	
	@M4FPropertySerializable(name="arrayStrings")
	private String[] arrayString;
	
	// TODO Array de object serializables y no serializables
	
	@M4FPropertySerializable(name="listString")
	@Key("listString")
	private List<String> listString;
	
	@M4FPropertySerializable(name="listInteger")
	@Key("listInteger")
	private List<Integer> listInteger;
	

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int[] getArrayInts() {
		return arrayInts;
	}

	public void setArrayInts(int[] arrayInts) {
		this.arrayInts = arrayInts;
	}

	public String[] getArrayString() {
		return arrayString;
	}

	public void setArrayString(String[] arrayString) {
		this.arrayString = arrayString;
	}

	public List<String> getListString() {
		return listString;
	}

	public void setListString(List<String> listString) {
		this.listString = listString;
	}

	public List<Integer> getListInteger() {
		return listInteger;
	}

	public void setListInteger(List<Integer> listInteger) {
		this.listInteger = listInteger;
	}
}
